	move(state([X,Y]), state([4,Y])):-X<4.
    move(state([X,Y]), state([X,3])):-Y<3.
	move(state([X,Y]), state([0,Y])):-X>0.
	move(state([X,Y]), state([X,0])):-Y>0.
	move(state([X,Y]), state([4,Z])):-X+Y>=4,Y>0,Z is Y-(4-X).
	move(state([X,Y]), state([Z,3])):-X+Y>=3,X>0,Z is X-(3-Y).
	move(state([X,Y]), state([Z,0])):-X+Y=<4,Y>0,Z is X+Y.
	move(state([X,Y]), state([0,Z])):-X+Y=<3,X>0,Z is X+Y.


	algorithm(dfs). /*dfs or brfs*/

	mywrite(state([X,Y])):-
		write(X), write(Y), nl.
		
  


	go_p(state([1,0])).

	isGoal(state([2,_])).
